package com.wyzz.hr.pojo.base;

import java.io.Serializable;
import java.util.*;
import org.apache.axis.utils.StringUtils;

import com.wyzz.hr.pojo.Department;
import com.wyzz.hr.pojo.Employee;
import com.wyzz.hr.pojo.Emptype;
import com.wyzz.hr.pojo.Location;
import com.wyzz.hr.pojo.PositionBase;
import com.wyzz.hr.pojo.Recruitapplier;
import com.wyzz.hr.pojo.Recruitplan;

public abstract class BaseRecruitplan implements Serializable {

	public BaseRecruitplan() {
		hashCode = 0x80000000;
		initialize();
	}

	public BaseRecruitplan(String id) {
		hashCode = 0x80000000;
		setId(id);
		initialize();
	}

	public BaseRecruitplan(String id, Location recpWorkLocation,
			Employee recpLastChangeBy, Department recpDepartmentNo,
			PositionBase recpPbNo, Employee recpCreateBy, Emptype recpType,
			Integer recpNo, Date recpStartDate, Integer recpNumberExpect,
			Integer recpStatus, Date recpCreateTime, Date recpLastChangeTime) {
		hashCode = 0x80000000;
		setId(id);
		setRecpWorkLocation(recpWorkLocation);
		setRecpLastChangeBy(recpLastChangeBy);
		setRecpDepartmentNo(recpDepartmentNo);
		setRecpCreateBy(recpCreateBy);
		setRecpType(recpType);
		setRecpNo(recpNo);
		setRecpStartDate(recpStartDate);
		setRecpNumberExpect(recpNumberExpect);
		setRecpStatus(recpStatus);
		setRecpCreateTime(recpCreateTime);
		setRecpLastChangeTime(recpLastChangeTime);
		initialize();
	}

	protected void initialize() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
		hashCode = 0x80000000;
	}

	public Integer getRecpNo() {
		return recpNo;
	}

	public void setRecpNo(Integer recpNo) {
		this.recpNo = recpNo;
	}

	public String getRecpJobDesc() {
		return recpJobDesc;
	}

	public void setRecpJobDesc(String recpJobDesc) {
		this.recpJobDesc = recpJobDesc;
	}

	public Date getRecpStartDate() {
		return recpStartDate;
	}

	public void setRecpStartDate(Date recpStartDate) {
		this.recpStartDate = recpStartDate;
	}

	public Date getRecpEndDate() {
		return recpEndDate;
	}

	public void setRecpEndDate(Date recpEndDate) {
		this.recpEndDate = recpEndDate;
	}

	public String getRecpAgeRange() {
		return recpAgeRange;
	}

	public void setRecpAgeRange(String recpAgeRange) {
		this.recpAgeRange = recpAgeRange;
	}

	public Integer getRecpNumberExpect() {
		return recpNumberExpect;
	}

	public void setRecpNumberExpect(Integer recpNumberExpect) {
		this.recpNumberExpect = recpNumberExpect;
	}

	public String getRecpDegree() {
		return recpDegree;
	}

	public void setRecpDegree(String recpDegree) {
		this.recpDegree = recpDegree;
	}

	public String getRecpSpeciality() {
		return recpSpeciality;
	}

	public void setRecpSpeciality(String recpSpeciality) {
		this.recpSpeciality = recpSpeciality;
	}

	public String getRecpLanguageSkill() {
		return recpLanguageSkill;
	}

	public void setRecpLanguageSkill(String recpLanguageSkill) {
		this.recpLanguageSkill = recpLanguageSkill;
	}

	public String getRecpJobSkill() {
		return recpJobSkill;
	}

	public void setRecpJobSkill(String recpJobSkill) {
		this.recpJobSkill = recpJobSkill;
	}

	public String getRecpWorkYears() {
		return recpWorkYears;
	}

	public void setRecpWorkYears(String recpWorkYears) {
		this.recpWorkYears = recpWorkYears;
	}

	public String getRecpSalaryRange() {
		return recpSalaryRange;
	}

	public void setRecpSalaryRange(String recpSalaryRange) {
		this.recpSalaryRange = recpSalaryRange;
	}

	public String getRecpInterviewEmps() {
		return recpInterviewEmps;
	}

	public void setRecpInterviewEmps(String recpInterviewEmps) {
		this.recpInterviewEmps = recpInterviewEmps;
	}

	public String getRecpComments() {
		return recpComments;
	}

	public void setRecpComments(String recpComments) {
		this.recpComments = recpComments;
	}

	public Integer getRecpStatus() {
		return recpStatus;
	}

	public void setRecpStatus(Integer recpStatus) {
		this.recpStatus = recpStatus;
	}

	public Date getRecpCreateTime() {
		return recpCreateTime;
	}

	public void setRecpCreateTime(Date recpCreateTime) {
		this.recpCreateTime = recpCreateTime;
	}

	public Date getRecpLastChangeTime() {
		return recpLastChangeTime;
	}

	public void setRecpLastChangeTime(Date recpLastChangeTime) {
		this.recpLastChangeTime = recpLastChangeTime;
	}

	public String getRecpNextApprover() {
		return recpNextApprover;
	}

	public void setRecpNextApprover(String recpNextApprover) {
		this.recpNextApprover = recpNextApprover;
	}

	public String getRecpSecurityNo() {
		return recpSecurityNo;
	}

	public void setRecpSecurityNo(String recpSecurityNo) {
		this.recpSecurityNo = recpSecurityNo;
	}

	public Location getRecpWorkLocation() {
		return recpWorkLocation;
	}

	public void setRecpWorkLocation(Location recpWorkLocation) {
		this.recpWorkLocation = recpWorkLocation;
	}

	public Employee getRecpLastChangeBy() {
		return recpLastChangeBy;
	}

	public void setRecpLastChangeBy(Employee recpLastChangeBy) {
		this.recpLastChangeBy = recpLastChangeBy;
	}

	public Department getRecpDepartmentNo() {
		return recpDepartmentNo;
	}

	public void setRecpDepartmentNo(Department recpDepartmentNo) {
		this.recpDepartmentNo = recpDepartmentNo;
	}

	public PositionBase getRecpPbNo() {
		return recpPbNo;
	}

	public void setRecpPbNo(PositionBase recpPbNo) {
		this.recpPbNo = recpPbNo;
	}

	public Employee getRecpCreateBy() {
		return recpCreateBy;
	}

	public void setRecpCreateBy(Employee recpCreateBy) {
		this.recpCreateBy = recpCreateBy;
	}

	public Emptype getRecpType() {
		return recpType;
	}

	public void setRecpType(Emptype recpType) {
		this.recpType = recpType;
	}

	public Set getRecruitappliers() {
		return recruitappliers;
	}

	public void setRecruitappliers(Set recruitappliers) {
		this.recruitappliers = recruitappliers;
	}

	public void addTorecruitappliers(Recruitapplier recruitapplier) {
		if (null == getRecruitappliers())
			setRecruitappliers(new TreeSet());
		getRecruitappliers().add(recruitapplier);
	}

	public boolean equals(Object obj) {
		if (null == obj)
			return false;
		if (!(obj instanceof Recruitplan))
			return false;
		if (obj instanceof Recruitplan) {
			Recruitplan recruitplan = (Recruitplan) obj;
			if (null == getId() || null == recruitplan.getId())
				return false;
			else
				return getId().equals(recruitplan.getId());
		}
		if (obj instanceof Recruitapplier) {
			Recruitapplier applier = (Recruitapplier) obj;
			if (getRecpNo() == null
					|| StringUtils.isEmpty(applier.getStrPlanNo()))
				return false;
			else
				return getRecpNo().equals(applier.getStrPlanNo());
		} else {
			return false;
		}
	}

	public int hashCode() {
		if (0x80000000 == hashCode) {
			if (null == getId())
				return super.hashCode();
			String hashStr = (new StringBuilder()).append(getClass().getName())
					.append(":").append(getId().hashCode()).toString();
			hashCode = hashStr.hashCode();
		}
		return hashCode;
	}

	public String toString() {
		return super.toString();
	}

	public static String REF = "Recruitplan";
	public static String PROP_RECP_START_DATE = "recpStartDate";
	public static String PROP_RECP_NO = "recpNo";
	public static String PROP_RECP_JOB_SKILL = "recpJobSkill";
	public static String PROP_RECP_WORK_LOCATION = "recpWorkLocation";
	public static String PROP_RECP_LAST_CHANGE_TIME = "recpLastChangeTime";
	public static String PROP_RECP_DEPARTMENT_NO = "recpDepartmentNo";
	public static String PROP_RECP_TYPE = "recpType";
	public static String PROP_RECP_STATUS = "recpStatus";
	public static String PROP_RECP_LAST_CHANGE_BY = "recpLastChangeBy";
	public static String PROP_RECP_CREATE_TIME = "recpCreateTime";
	public static String PROP_RECP_COMMENTS = "recpComments";
	public static String PROP_RECP_NUMBER_EXPECT = "recpNumberExpect";
	public static String PROP_RECP_LANGUAGE_SKILL = "recpLanguageSkill";
	public static String PROP_RECP_JOB_DESC = "recpJobDesc";
	public static String PROP_ID = "id";
	public static String PROP_RECP_CREATE_BY = "recpCreateBy";
	public static String PROP_RECP_DEGREE = "recpDegree";
	public static String PROP_RECP_END_DATE = "recpEndDate";
	public static String PROP_RECP_AGE_RANEG = "recpAgeRange";
	public static String PROP_RECP_AGE_SPECIALITY = "recpSpeciality";
	public static String PROP_RECP_WORK_YEARS = "recpWorkYears";
	public static String PROP_RECP_SALARY_RANGE = "recpSalaryRange";
	public static String PROP_INTERVIEW_EMPS = "recpInterviewEmps";
	public static String PROP_RECP_PB_NO = "recpPbNo";
	public static String PROP_RECR_Security_NO = "recpSecurityNo";
	public static String PROP_RECP_NEXT_APPROVER = "recpNextApprover";
	private int hashCode;
	private String id;
	private Integer recpNo;
	private String recpJobDesc;
	private Date recpStartDate;
	private Date recpEndDate;
	private String recpAgeRange;
	private Integer recpNumberExpect;
	private String recpDegree;
	private String recpSpeciality;
	private String recpLanguageSkill;
	private String recpJobSkill;
	private String recpWorkYears;
	private String recpSalaryRange;
	private String recpInterviewEmps;
	private String recpComments;
	private Integer recpStatus;
	private Date recpCreateTime;
	private Date recpLastChangeTime;
	private String recpNextApprover;
	private String recpSecurityNo;
	private Location recpWorkLocation;
	private Employee recpLastChangeBy;
	private Department recpDepartmentNo;
	private PositionBase recpPbNo;
	private Employee recpCreateBy;
	private Emptype recpType;
	private Set recruitappliers;

}
